<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 对比数组
    // console.dir(Array);

    // var arr = new Array(1, 2, 3, 4);
    // console.log(arr);

    // 自定义数组的拓展方法 => 给所有的数组使用  => Array.prototype

    Array.prototype._slice = function (startIndex, endIndex) {
        // this -> 调用此方法的实例化对象
        var list = [];
        for (var i = startIndex; i < endIndex; i++) {
            var item = this[i];
            list.push(item);
        }
        return list;
    }

    Array.prototype._forEach = function (callback) {
        // this -> 调用此方法的实例化对象
        for (var i = 0; i < this.length; i++) { // 传入一个回调函数 每次循环时执行
            var item = this[i]; // 循环的当前元素
            var index = i;  // 循环的当前下标
            var array = this;  // 原数组
            callback(item, index, array); //三个实参 
        }
    }


    debugger;
    var arr = [1, 4, 7, 2, 5, 8, 3, 6, 9];

    // var result = arr._slice(3, 6);
    // console.log(result);

    // 遍历数组 => 每次循环时执行传入的回调函数
    arr._forEach(function (item, index, array) {
        console.log(item, index, array);
    })





</script>

</html>